package com.vca.common.request;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotEmpty;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 用户添加或修改Request
 * @author Li
 * @date 2022/11/23
 */
@Data
public class VcaProductAddRequest implements Serializable {

    @ApiModelProperty(value = "商品主键id")
    private Integer id;

    @ApiModelProperty(value = "商品类型ID")
    private Integer cid;

    @ApiModelProperty(value = "商品类型子集ID")
    private List<Integer> children;

    @ApiModelProperty(value = "商品名称")
    private String name;

    @ApiModelProperty(value = "商品英文名称")
    private String nameEn;

    @ApiModelProperty(value = "商品详情")
    private String details;

    @ApiModelProperty(value = "商品英文详情")
    private String detailsEn;

    @ApiModelProperty(value = "面值（录入的商品非礼品卡时，不需要填写面值）")
    private String faceValue;

    @ApiModelProperty(value = "礼品卡编号")
    private String cardNo;

    @ApiModelProperty(value = "商品简介")
    private String introduction;

    @ApiModelProperty(value = "商品英文简介")
    private String introductionEn;

    @ApiModelProperty(value = "商品封面图")
    private String coverImage;

    @ApiModelProperty(value = "商品轮播图")
    private List<String> carouselMap;

    @ApiModelProperty(value = "主图视频")
    private String mainPictureVideo;

    @ApiModelProperty(value = "分享海报")
    private String sharePoster;

    @ApiModelProperty(value = "商品图片")
    private String image;

    @ApiModelProperty(value = "商品价格")
    private BigDecimal price;

    @ApiModelProperty(value = "库存")
    private Integer stock;

    @ApiModelProperty(value = "ISBN编号")
    private String isbnCode;

    @ApiModelProperty(value = "规格 false单 true多")
    private Boolean specType;

    @ApiModelProperty(value = "销量")
    private Integer sales;

    @ApiModelProperty(value = "排序")
    private Integer sort;

    @ApiModelProperty(value = "状态（0：未上架，1：上架）")
    private Boolean isShow;

    @ApiModelProperty(value = "选择使用范围 0=课程 1=讲座 2=展览")
    private Integer useAround;

    @ApiModelProperty(value = "使用类型 1=分类卡 2=课程卡/讲座卡/展览卡（取决于使用范围）3=通用卡")
    private Integer useType;

    @ApiModelProperty(value = "所属分类id / 课程id")
    private List<Integer> primaryKeys;

    @ApiModelProperty(value = "有效期")
    private Integer endTime;

    @ApiModelProperty(value = "主色")
    private String mainColor;

    @ApiModelProperty(value = "第二色")
    private String secondaryColor;

    @ApiModelProperty(value = "第三色")
    private String tertiaryColor;

    @ApiModelProperty(value = "商品属性", required = true)
    @NotEmpty(message = "商品属性不能为空")
    private List<StoreProductAttrAddRequest> attr;

    @ApiModelProperty(value = "商品属性详情", required = true)
    @NotEmpty(message = "商品属性详情不能为空")
    private List<StoreProductAttrValueAddRequest> attrValue;

    @ApiModelProperty(value = "相关课程")
    private List<CourseAboutAddRequest> courseAboutAddRequests;

}
